// 文件上传
jQuery(function() {
    var $ = jQuery,
        $list = $('#thelist'),
        $btn = $('#ctlBtn'),
        state = 'pending',
        uploader;
     
    //root_url路径
    var root_url = $("#root-url").val();

    uploader = WebUploader.create({

        // 不压缩image
        resize: false,

        // swf文件路径
        swf: root_url+'/../extend/webuploader/Uploader.swf',

		chunked: true,  // 分片上传大文件
        chunkedSize : 2* 1024 *1024,

        // 文件接收服务端。
        server: root_url+'/../extend/webuploader/FileUpload.php',
        runtimeOrder: 'flash,html5',

        // 选择文件的按钮。可选。
        // 内部根据当前运行是创建，可能是input元素，也可能是flash.
        pick: '#picker',
        
        // 只允许选择文件，可选。
        accept: {
            title: 'Video',
            extensions: "3gp,mp4,rmvb,mov,avi,m4v",
            mimeTypes: "video/*,audio/*,application/*"
        },
        
        //限制文件大小
        fileNumLimit : 1,
        fileSizeLimit : 1000 * 1024 *1024, //1000兆
        fileSingleSizeLimit : 1000 * 1024 *1024, //100兆
        method : 'POST',
        
    });
    
    //js获取随机数
    var random = parseInt(Math.random()*9999999,10)+1;
    
    //文件上传前携带参数
    uploader.on('uploadBeforeSend',function(block,data){
        // block为分块数据。  
        // file为分块对应的file对象。  
        var file = block.file;
      
        // 修改data可以控制发送哪些携带数据。 （文件名称储存路径）
        var route = '/video/add/';//储存路径
        var prefix = 'SP'+random;//前缀
        data.route = route;
        data.prefix = prefix;
    });

    // 当有文件添加进来的时候
    uploader.on('fileQueued', function( file ) {
        $list.append( '<div id="' + file.id + '" class="item">' +
            '<h4 class="info">' + file.name + '</h4>' +
            '<p class="state">等待上传...</p>' +
        '</div>' );
        //隐藏选择视频按钮、显示删除视频按钮
        $("#picker").css("opacity","0");
        $("#picker").css("float","right");
        $("#afresh").removeClass("hidden");
    });

    // 文件上传过程中创建进度条实时显示。
    uploader.on( 'uploadProgress', function( file, percentage ) {
        var $li = $( '#'+file.id ),
            $percent = $li.find('.progress .progress-bar');
        // 避免重复创建
        if ( !$percent.length ) {
            $percent = $('<div class="progress progress-striped active">' +
              '<div class="progress-bar" role="progressbar" style="width: 0%">' +
              '</div>' +
            '</div>').appendTo( $li ).find('.progress-bar');
        }
        $li.find('p.state').text('上传中');
        $percent.css( 'width', percentage * 100 + '%' );
    });

	////文件正在上传的时候（报错用不了 后期可以优化）
	//uploader.on('uploadAccept', function (file, response) {
	//	if (response.valid!==undefined) {
	//		if (response.valid) {
	//			console.log(response);
	//			images.push(response.message);
	//			return true;
	//		} else {
	//			//上传失败
	//			alert('上传失败, ' + response.message);
	//			uploader.removeFile(file.file);
	//			return false;
	//		}
	//	}else{
	//		require(['util'],function(){
	//		util.message(response._raw,'','info',5);
	//		})
	//	}	
	//});
	
	//文件上传成功的时候   注意这里多加了个 ***response***
    uploader.on('uploadSuccess', function(file, response) {
        $( '#'+file.id ).find('p.state').text('已上传');
        //返回的 文件路径 
        var video_url = response.result;
        //上传视频路径赋值
	    $("#uploader #video-url").val(video_url);
	    
    });
	
	//文件上传失败
    uploader.on('uploadError', function( file ) {
        $( '#'+file.id ).find('p.state').text('上传出错');
    });

	//文件上传完成
    uploader.on('uploadComplete', function( file ) {
        $( '#'+file.id ).find('.progress').fadeOut();
    });

	//文件暂停上传
    uploader.on('all', function( type ) {
        if ( type === 'startUpload' ) {
            state = 'uploading';
        } else if ( type === 'stopUpload' ) {
            state = 'paused';
        } else if ( type === 'uploadFinished' ) {
            state = 'done';
        }

        if ( state === 'uploading' ) {
            $btn.text('暂停上传');
        } else {
            $btn.text('开始上传');
        }
    });
   	
   	//删除视频事件
   	$("#afresh").on('click', function() {
   		//隐藏删除视频按钮、显示上传视频按钮
        $("#picker").removeClass('hidden');
        $("#picker").css("opacity","1");
        $("#picker").css("float","left");
        $("#afresh").addClass("hidden");
        //删除上传文件对队列
        var len = $("#thelist .item").find('div')
        if (len > 0) {
            var id = $("#thelist .item").attr('id');
            uploader.removeFile(uploader.getFile(id,true));
            $("#"+id).remove();
        }
		//判断是否上传成功 => 删除视频文件
		var video_url = $("#video-url").val();
        console.log(video_url)
		if(video_url){
			$.ajax({
                type:"post",
                url:"deleteVideoUrl",
                data:{"video_url":video_url,"user_id":$('input[name="user_id"]').val(),"type":$('input[name="type"]').val()},
                dataType:"json",
                success:function(json,jsonText){
                    if(json.errorCode == 0){
                    	//置空视频文件
                        $("#uploader #video-url").val('')
                        window.location.reload();
                    }
                }
            });
		}
   	});
   	
	//开始上传点击事件
    $btn.on('click', function() {
        if(state === 'uploading'){
        	//原始文件
            uploader.stop();
        }else{
        	////判断是否选择封面图
        	//var cover_file = document.getElementById('video-cover').files[0];
        	//if(!cover_file){
        	//	$(".v-notice").addClass("size-notice");
        	//	$(".v-notice").text('请选择封面图');
        	//	return false;
        	//}
        	//判断是否选择视频
        	var select_video = $("#thelist .item").attr('id');
        	if(!select_video){
        		$(".v-notice").addClass("size-notice");
        		$(".v-notice").text('请先选择视频');
        		return false;
        	}
        	//还原文字提示
        	$(".v-notice").removeClass("size-notice");
        	$(".v-notice").text('');
        	
        	//开始上传 => 原始文件
        	uploader.upload();
        }
    });
    
})